package main

// User 表示系统中的用户信息结构
type User struct {
	LoginName   string // 登录用户名
	Password    string // 用户密码
	RelPassword string // 用户密码
	sessionSalt string // 会话盐值，用于安全验证
}

// users 预定义的用户列表
var users = []User{
	{LoginName: "demo1", Password: "{SHA256}F43W3skEO3msT-aJK2GlSRYbRqV0K-vUi9T6qJD7wM0=53R_a7MGLmbiyV9401tN81hVsyb4fQp0oIVlbkdQfAs=", RelPassword: "Abcd.123"},
	{LoginName: "demo2", Password: "{SHA1}sMSsz9e87q8ktYsfSi8zpHNJcl4=YLQb2CH2aQf9Z57FmNViesriKqw=", RelPassword: "Abcd.123"},
	{LoginName: "demo3", Password: "{SHA512}QCuvOkEJL9XH1kbLks4BAhBdSE3SyTxiiRB1q-dsqKk0tAr_M1PAmRQxiv5AdPp_yqrWEZWfao4iI0vY--GYJQ==1O_aoA_WGKj2HhJDGUL9Ti_7EsCEF8xkbUEYG8LEoN6ggZQR2XHZM7svSvW993oPfNI7n7SBGvXRU3kao2POwA==", RelPassword: "Abcd.123"},
	{LoginName: "demo4", Password: "{YUANQI}ZjiX8F5XSNM6701a1Eh7MUuRKLQ=54HaFprO-G7I7Kv7O1vGPOX6YEE=", RelPassword: "Abcd.123"},
	{LoginName: "demo5", Password: "Abcd.123", RelPassword: "Abcd.123"},
}

// findUser 根据登录名查找用户
// 参数:2
//   loginName - 要查找的登录用户名
// 返回值:
//   User - 找到的用户信息（如果未找到则返回空User）
//   bool - 是否找到用户
func findUser(loginName string) (User, bool) {
	for _, user := range users {
		if user.LoginName == loginName {
			return user, true
		}
	}
	return User{}, false
}

// updateUserSessionSalt 更新用户的会话盐值并返回是否成功
// 参数:
//   loginName - 用户名
//   newSalt - 新的会话盐值
// 返回值:
//   bool - 是否成功更新
func updateUserSessionSalt(loginName, newSalt string) bool {
	for i, user := range users {
		if user.LoginName == loginName {
			users[i].sessionSalt = newSalt
			return true
		}
	}
	return false
}
